import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * Created by L.jp
 * Description:
 * * 给出一个长度为n的数组，统计其中差值为k的数对的数量。
 *  *其中，数对的定义是，从数组中选择两个位置不同的数字，即可组成一个数对。
 *  * 1 <= n, k <= 100000，数组中每个数字的范围在[1, 200000]之间
 *  * 输入描述
 *  * 第一行两个正整数n和k，表示数组长度为n，询问的差值为k。
 *  * 接下来一行n个正整数，表示数组中每个数的大小。
 *  * 输出描述
 *  * 一行，一个非负整数，表示相差为k的数对的数量。
 *  * 样例输入
 *  * 6 5
 *  * 5 6 7 8 9 10
 *  * 样例输出
 *  * 1
 *  * 提示
 *  * 样例解释1
 *  * 这个例子中，仅有一组数对差值为5，即(5,10)
 *  * 输入样例2
 *  * 6 5
 *  5 5 5 10 10 10
 *  * 输出样例2
 *  * 9
 *  * 样例解释2
 *  * 不同位置上的(5, 10) 共有9对
 * User: 86189
 * Date: 2023-04-11
 * Time: 0:11
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int len=scanner.nextInt();
        int k=scanner.nextInt();
        HashMap<Integer,Integer> map=new HashMap<>();
        int[] arr=new int[len];
        int res=0;
        for(int i=0;i<len;i++){
            arr[i]=scanner.nextInt();
            map.put(i,arr[i]);
        }
        for(int i=0;i<len;i++){
            for(Map.Entry<Integer, Integer> num:map.entrySet()){
                if(arr[i]-num.getValue()==k ){
                    res++;
                }
            }
        }
        System.out.println(res/2);
    }
}
